package com.laiqilin.controller;

import com.laiqilin.common.util.PageResult;
import com.laiqilin.common.util.Result;
import com.laiqilin.entity.Goods;
import com.laiqilin.service.IGoodsService;
import com.laiqilin.vo.GoodsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/goods")
public class GoodsController {

	@Autowired
	private IGoodsService goodsService;

	// 获取货物列表
	@RequestMapping("/list")
	public Result getGoods() {
		return Result.ok().data("list", goodsService.list());
	}

	// 分页查询（不带条件）
	@GetMapping("/findByPage/{page}/{pageSize}")
	public Result findByPage(@PathVariable("page") Integer page,
							 @PathVariable("pageSize") Integer pageSize) {
		PageResult<Goods> pr = goodsService.findByPage(page, pageSize);
		return Result.ok().data("pr", pr);
	}

	// 分页查询（带条件）
	@PostMapping("/search/{page}/{pageSize}")
	public Result search(@PathVariable("page") Integer page,
						 @PathVariable("pageSize") Integer pageSize,
						 @RequestBody(required = false) GoodsVO vo) {
		PageResult<Goods> pr = goodsService.search(page, pageSize, vo);
		return Result.ok().data("pr", pr);
	}

	// 添加货物，并指定货架
	@PostMapping("/add")
	public Result add(@RequestBody Goods goods) {
		boolean flag = goodsService.save(goods);
		return flag ? Result.ok().message("添加成功!") : Result.error().message("添加失败!");
	}

	// 修改货物信息
	@PutMapping("/update")
	public Result update(@RequestBody Goods goods) {
		boolean flag = goodsService.updateById(goods);
		return flag ? Result.ok().message("修改成功!") : Result.error().message("修改失败!");
	}

	// 批量删除货物
	@DeleteMapping("/delete/{ids}")
	public Result delete(@PathVariable("ids") String ids) {
		String[] temp = ids.split(",");
		List<String> list = Arrays.asList(temp);
		return goodsService.removeByIds(list) ? Result.ok().message("删除成功!") : Result.error().message("删除失败!");
	}
}
